package com.java.day03.homework;

import java.util.Scanner;

/**
 * .验证哥德巴赫猜想：任何一个大于6的偶数，都能分解成两个质数的和，要求输入一个整数，输出这个数被被分解成哪两个质数的和。
 * 如：14
 * 14 = 3 + 11
 * 14 = 7 + 7
 */
public class homework_2 {
    public static void main(String[] args) {
        //输入的整数
        int num;
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        num = scanner.nextInt();

        goldBach(num);
    }

    /**
     * 验证哥德巴赫猜想
     * @param num 输入的整数
     */
    private static void goldBach(int num) {
        System.out.println(num +"的组成为:");
        if (num > 6 && num % 2 == 0) {
            for (int i = 1; i <= num / 2; i++) {
//                int a = i;//第一个加数
//                int b = num - i;//第二个加数
//                if (judgment(a) && judgment(b)) {
//
//                    System.out.println(num +" = "+a+" + "+b);
//                }
                //修改
                if (judgment(i) && judgment(num-i)) {

                    System.out.println(num +" = "+i+" + "+(num-i));
                }
            }
        } else {
            System.out.println("请输入一个大于6的偶数");
        }
    }

    /**
     * 判断质数
     * @param number 需要被判断的数
     * @return 如果是非质数返回false,质数返回true
     */
    public static boolean judgment(int number) {
        if (number == 1) {
            return false;
        } else {
            for (int i = 2; i < number; i++) {
                if (number % i == 0) {
                    return false;
                }
            }
        }
        return true;
    }
}

